Bir nechta ekranli veb-ilovalarni yaratish uchun Frontend Presentation API-ni o'rganing. Bir nechta displeylarda qiziqarli kontentni taqdim etish uchun tushunchalar, amalga oshirish va eng yaxshi amaliyotlarni o'rganing.
Ko'p ekranli tajribalarni kashf etish: Frontend Presentation API bo'yicha chuqur tahlil
Bugungi o'zaro bog'langan dunyoda foydalanuvchilar bir nechta qurilmalar bo'ylab uzluksiz tajribalarni kutishadi. Frontend Presentation API veb-dasturchilarga bitta ekrandan tashqariga chiqadigan, qiziqarli va hamkorlikdagi ko'p ekranli tajribalarni taklif qiluvchi ilovalarni yaratish uchun kuchli mexanizmni taqdim etadi. Ushbu keng qamrovli qo'llanma Presentation API-ning imkoniyatlari, amalga oshirish tafsilotlari va eng yaxshi amaliyotlarini o'rganib, sizga bir nechta displeylar kuchidan foydalanadigan innovatsion veb-ilovalarni yaratish imkonini beradi.
Presentation API nima?
Presentation API - bu veb-sahifaga (taqdimot boshqaruvchisi) ikkilamchi displeylarni (taqdimot qabul qiluvchilari) topish va ularga ulanish imkonini beruvchi veb-API. Bu dasturchilarga kontentni bir nechta ekranlarda namoyish etadigan veb-ilovalarni yaratish imkonini beradi, masalan:
- Taqdimotlar: Taqdimotchi o'z noutbukida qaydlarni ko'rayotgan vaqtda proyektorda slaydlarni namoyish qilish.
- Raqamli tabelalar: Markaziy veb-ilovadan boshqariladigan ommaviy displeylarda ma'lumotlarni namoyish qilish.
- O'yinlar: Yaxshiroq sho'ng'ish yoki hamkorlikdagi o'yin uchun o'yin jarayonini ikkinchi ekranga kengaytirish.
- Interaktiv boshqaruv panellari: Boshqaruv xonasi yoki ofis muhitida bir nechta monitorlarda real vaqtdagi ma'lumotlar va vizualizatsiyalarni namoyish qilish.
- Hamkorlikdagi ilovalar: Bir nechta foydalanuvchilarga alohida ekranlarda kontent bilan bir vaqtda ishlash imkonini berish.
Aslini olganda, Presentation API sizning veb-ilovangizga kontentni boshqa ekranlarga "efirga uzatish" imkonini beradi. Buni Chromecast kabi tasavvur qiling, lekin u to'g'ridan-to'g'ri brauzerga o'rnatilgan va sizning nazoratingiz ostida. U boshqaruvchi veb-sahifa va taqdim etilgan kontentni ko'rsatuvchi bir yoki bir nechta qabul qiluvchi veb-sahifalar o'rtasidagi aloqani osonlashtiradi.
Asosiy tushunchalar va terminologiya
Presentation API bilan ishlash uchun quyidagi tushunchalarni tushunish juda muhim:
- Taqdimot Boshqaruvchisi: Taqdimotni boshlaydigan va boshqaradigan veb-sahifa. Bu odatda foydalanuvchi ilova bilan ishlaydigan asosiy ekran hisoblanadi.
- Taqdimot Qabul Qiluvchisi: Ikkilamchi ekranda ko'rsatiladigan veb-sahifa. Bu sahifa taqdimot boshqaruvchisidan kontentni qabul qiladi va uni ko'rsatadi.
- Taqdimot So'rovi: Taqdimot boshqaruvchisidan ma'lum bir URL (taqdimot qabul qiluvchisi) bo'yicha taqdimotni boshlash uchun yuborilgan so'rov.
- Taqdimot Ulanishi: Muvaffaqiyatli taqdimot so'rovidan so'ng taqdimot boshqaruvchisi va taqdimot qabul qiluvchisi o'rtasida o'rnatilgan ikki tomonlama aloqa kanali.
- Taqdimot Mavjudligi: Taqdimot displeylarining mavjudligini bildiradi. Bu brauzer va operatsion tizim tomonidan aniqlanadi.
Presentation API qanday ishlaydi: Bosqichma-bosqich qo'llanma
Presentation API yordamida ko'p ekranli taqdimotni o'rnatish jarayoni bir necha bosqichlarni o'z ichiga oladi:
- Taqdimot Boshqaruvchisi: Mavjudlikni aniqlash: Taqdimot boshqaruvchisi avval `navigator.presentation.defaultRequest` obyekti yordamida taqdimot displeylarining mavjudligini tekshiradi.
- Taqdimot Boshqaruvchisi: Taqdimotni so'rash: Boshqaruvchi taqdimot qabul qiluvchi sahifasining URL manzili bilan `navigator.presentation.defaultRequest.start()` ni chaqiradi.
- Brauzer: Foydalanuvchidan so'rash: Brauzer foydalanuvchidan taqdimot uchun displey tanlashni so'raydi.
- Taqdimot Qabul Qiluvchisi: Sahifani yuklash: Brauzer tanlangan displeyda taqdimot qabul qiluvchi sahifasini yuklaydi.
- Taqdimot Qabul Qiluvchisi: Ulanish o'rnatildi: Taqdimot qabul qiluvchi sahifasi `PresentationConnection` obyekti mavjud bo'lgan `PresentationConnectionAvailable` hodisasini qabul qiladi.
- Taqdimot Boshqaruvchisi: Ulanish o'rnatildi: Taqdimot boshqaruvchisi ham o'zining `PresentationConnection` obyekti bilan `PresentationConnectionAvailable` hodisasini qabul qiladi.
- Aloqa: Taqdimot boshqaruvchisi va qabul qiluvchisi endi `PresentationConnection` obyektining `postMessage()` usuli yordamida aloqa o'rnatishi mumkin.
Amalga oshirish tafsilotlari: Kod namunalari
Keling, oddiy taqdimot ilovasini amalga oshirish uchun zarur bo'lgan kodni ko'rib chiqaylik.
Taqdimot Boshqaruvchisi (sender.html)
Ushbu sahifa foydalanuvchiga taqdimot displeyini tanlash va qabul qiluvchiga xabar yuborish imkonini beradi.
<!DOCTYPE html>
<html>
<head>
<title>Taqdimot Boshqaruvchisi</title>
</head>
<body>
<button id="startPresentation">Taqdimotni Boshlash</button>
<input type="text" id="messageInput" placeholder="Xabar kiriting">
<button id="sendMessage">Xabar Yuborish</button>
<div id="status"></div>
<script>
let connection = null;
const startPresentationButton = document.getElementById('startPresentation');
const messageInput = document.getElementById('messageInput');
const sendMessageButton = document.getElementById('sendMessage');
const statusDiv = document.getElementById('status');
startPresentationButton.addEventListener('click', async () => {
try {
connection = await navigator.presentation.defaultRequest.start('receiver.html');
statusDiv.textContent = 'Taqdimot boshlandi!';
connection.onmessage = (event) => {
statusDiv.textContent += '\nQabul qiluvchidan olindi: ' + event.data;
};
connection.onclose = () => {
statusDiv.textContent = 'Taqdimot yopildi.';
connection = null;
};
} catch (error) {
statusDiv.textContent = 'Taqdimotni boshlashda xatolik: ' + error;
}
});
sendMessageButton.addEventListener('click', () => {
if (connection) {
const message = messageInput.value;
connection.postMessage(message);
statusDiv.textContent += '\nYuborildi: ' + message;
messageInput.value = '';
} else {
statusDiv.textContent = 'Taqdimot ulanishi mavjud emas.';
}
});
</script>
</body>
</html>
Taqdimot Qabul Qiluvchisi (receiver.html)
Ushbu sahifa taqdimot boshqaruvchisidan olingan kontentni ko'rsatadi.
<!DOCTYPE html>
<html>
<head>
<title>Taqdimot Qabul Qiluvchisi</title>
</head>
<body>
<div id="content">Kontent kutilmoqda...</div>
<script>
navigator.presentation.receiver.connectionList.then(list => {
list.connections.forEach(connection => {
handleConnection(connection);
});
list.addEventListener('connectionavailable', event => {
handleConnection(event.connection);
});
});
function handleConnection(connection) {
const contentDiv = document.getElementById('content');
contentDiv.textContent = 'Ulanish o\'rnatildi!';
connection.onmessage = (event) => {
contentDiv.textContent += '\nQabul qilindi: ' + event.data;
connection.postMessage('Qabul qiluvchi qabul qildi: ' + event.data);
};
connection.onclose = () => {
contentDiv.textContent = 'Ulanish yopildi.';
};
}
</script>
</body>
</html>
Tushuntirish:
- sender.html (taqdimot boshqaruvchisi) `navigator.presentation.defaultRequest.start('receiver.html')` yordamida taqdimotni so'raydi. Keyin ulanish o'rnatilishini kutadi va xabarlar yuborish uchun tugma taqdim etadi.
- receiver.html (taqdimot qabul qiluvchisi) `navigator.presentation.receiver.connectionList` yordamida kiruvchi ulanishlarni kutadi. Ulanish o'rnatilgach, u xabarlarni tinglaydi va ularni ko'rsatadi. Shuningdek, u javob xabarini yuboradi.
Taqdimot mavjudligini boshqarish
Taqdimotni boshlashdan oldin taqdimot displeylarining mavjudligini tekshirish muhim. Taqdimot displeylarining mavjudligini aniqlash uchun `navigator.presentation.defaultRequest.getAvailability()` usulidan foydalanishingiz mumkin.
navigator.presentation.defaultRequest.getAvailability()
.then(availability => {
if (availability.value) {
console.log('Taqdimot displeylari mavjud.');
} else {
console.log('Taqdimot displeylari mavjud emas.');
}
availability.addEventListener('change', () => {
if (availability.value) {
console.log('Taqdimot displeylari endi mavjud.');
} else {
console.log('Taqdimot displeylari endi mavjud emas.');
}
});
})
.catch(error => {
console.error('Taqdimot mavjudligini olishda xatolik:', error);
});
Xatoliklarni boshqarish va mustahkamlik
Har qanday veb-API kabi, xatoliklarni to'g'ri boshqarish juda muhim. Mana bir nechta e'tiborga olish kerak bo'lgan jihatlar:
- Istisnolarni ushlash: Potentsial xatoliklarni boshqarish uchun Presentation API chaqiruvlaringizni `try...catch` bloklariga o'rang.
- Ulanish uzilishini boshqarish: Ulanish uzilganligini aniqlash uchun `PresentationConnection` da `close` hodisasini tinglang. Qayta ulanish yoki foydalanuvchi tajribasini chiroyli tarzda pasaytirish mexanizmini amalga oshiring.
- Foydalanuvchini xabardor qilish: Foydalanuvchiga muammoni tushuntiruvchi va mumkin bo'lgan yechimlarni taklif qiluvchi informatsion xatolik xabarlarini taqdim eting.
- Chiroyli pasayish (Graceful Degradation): Agar Presentation API brauzer tomonidan qo'llab-quvvatlanmasa yoki taqdimot displeylari mavjud bo'lmasa, ilovangiz ko'p ekranli funksionallik o'chirilgan bo'lsa ham foydalanish mumkin bo'lgan tajribani taqdim etishini ta'minlang.
Xavfsizlik masalalari
Presentation API foydalanuvchilarni himoya qilish va zararli foydalanishni oldini olish uchun o'rnatilgan xavfsizlik xususiyatlariga ega:
- Foydalanuvchi roziligi: Brauzer har doim foydalanuvchidan taqdimot uchun displey tanlashni so'raydi, bu esa foydalanuvchining taqdimotdan xabardorligini va uni ma'qullashini ta'minlaydi.
- Manbalararo cheklovlar: Presentation API manbalararo siyosatlarga rioya qiladi. Taqdimot boshqaruvchisi va qabul qiluvchisi bir xil manbadan taqdim etilishi yoki aloqa uchun CORS (Cross-Origin Resource Sharing) dan foydalanishi kerak.
- HTTPS talabi: Xavfsizlik sababli, Presentation API dan foydalanish odatda xavfsiz kontekstlar (HTTPS) bilan cheklangan.
Ko'p ekranli dasturlash uchun eng yaxshi amaliyotlar
Qiziqarli va foydalanuvchiga qulay ko'p ekranli ilovalarni yaratish uchun ushbu eng yaxshi amaliyotlarni ko'rib chiqing:
- Turli ekran o'lchamlari va ruxsatlari uchun dizayn: Taqdimot qabul qiluvchi sahifangiz turli displey o'lchamlari va ruxsatlariga moslasha olishini ta'minlang. Turli ekranlarda izchil foydalanuvchi tajribasini yaratish uchun responsiv dizayn texnikalaridan foydalaning.
- Ishlash samaradorligini optimallashtirish: Ayniqsa, past o'tkazuvchanlikli ulanishlarda silliq ishlashni ta'minlash uchun taqdimot boshqaruvchisi va qabul qiluvchisi o'rtasida uzatiladigan ma'lumotlar miqdorini minimallashtiring. Ma'lumotlarni siqish texnikalaridan foydalanishni ko'rib chiqing.
- Aniq vizual belgilarni taqdim eting: Foydalanuvchiga qaysi ekran asosiy va qaysi biri ikkilamchi ekanligini aniq ko'rsating. Foydalanuvchining e'tiborini va o'zaro ta'sirini yo'naltirish uchun vizual belgilardan foydalaning.
- Foydalanish imkoniyatlarini (accessibility) hisobga oling: Ko'p ekranli ilovangiz nogironligi bo'lgan foydalanuvchilar uchun ham qulay bo'lishini ta'minlang. Rasmlar uchun alternativ matn taqdim eting, tegishli rang kontrastidan foydalaning va klaviatura navigatsiyasi qo'llab-quvvatlanishini ta'minlang.
- Turli qurilmalar va brauzerlarda sinovdan o'tkazing: Moslikni ta'minlash va potentsial muammolarni aniqlash uchun ilovangizni turli xil qurilmalar va brauzerlarda sinchkovlik bilan sinab ko'ring. Presentation API yetuklashgan bo'lsa-da, brauzerlarni qo'llab-quvvatlash va amalga oshirishdagi nozikliklar hali ham mavjud.
- Foydalanuvchi yo'li haqida o'ylang: Dastlabki sozlashdan uzilishgacha bo'lgan butun foydalanuvchi tajribasini ko'rib chiqing. Foydalanuvchini jarayon davomida yo'naltirish uchun aniq ko'rsatmalar va fikr-mulohazalar taqdim eting.
Haqiqiy dunyo misollari va qo'llash holatlari
Presentation API innovatsion veb-ilovalar uchun keng imkoniyatlar ochadi. Mana bir nechta misollar:
- Interaktiv doskalar: Katta sensorli ekran yoki proyektorda ko'rsatiladigan umumiy kanvasda bir nechta foydalanuvchilarga hamkorlik qilish imkonini beruvchi veb-asosidagi doska ilovasi.
- Masofaviy hamkorlik vositalari: Masofaviy jamoalarga bir nechta ekranlarda hujjatlar yoki taqdimotlarni real vaqtda almashish va izohlash imkonini beruvchi vosita.
- Konferensiya va tadbir ilovalari: Konferensiya va tadbirlarda katta ekranlarda ma'ruzachi ma'lumotlari, jadvallar va interaktiv so'rovnomalarni markaziy veb-ilova tomonidan boshqariladigan tarzda namoyish qilish.
- Muzey va galereya eksponatlari: Tashrif buyuruvchilarni bir nechta ekranlarda jalb qiladigan, namoyish etilgan artefaktlar haqida chuqurroq ma'lumot beradigan interaktiv eksponatlar yaratish. Asosiy ekranda artefaktni namoyish etadigan va kichikroq ekranlarda qo'shimcha kontekst yoki interaktiv elementlarni taklif qiladigan holatni tasavvur qiling.
- Sinfdagi ta'lim: O'qituvchilar dars berish uchun asosiy ekrandan foydalanishlari mumkin, shu bilan birga o'quvchilar o'zlarining shaxsiy qurilmalarida qo'shimcha kontent bilan o'zaro aloqada bo'lishlari mumkin, bularning barchasi Presentation API orqali muvofiqlashtiriladi.
Brauzerlarni qo'llab-quvvatlash va alternativlar
Presentation API asosan Google Chrome va Microsoft Edge kabi Chromium-ga asoslangan brauzerlar tomonidan qo'llab-quvvatlanadi. Boshqa brauzerlar qisman yoki umuman qo'llab-quvvatlamasligi mumkin. Eng so'nggi brauzer mosligi ma'lumotlari uchun MDN Web Docs ni tekshiring.
Agar siz Presentation API ni mahalliy qo'llab-quvvatlamaydigan brauzerlarni qo'llab-quvvatlashingiz kerak bo'lsa, ushbu alternativlarni ko'rib chiqishingiz mumkin:
- WebSockets: Taqdimot boshqaruvchisi va qabul qiluvchisi o'rtasida doimiy ulanish o'rnatish uchun WebSockets-dan foydalaning va aloqa protokolini qo'lda boshqaring. Bu yondashuv ko'proq kodlashni talab qiladi, lekin ko'proq moslashuvchanlikni taklif etadi.
- WebRTC: WebRTC (Web Real-Time Communication) tengdoshlararo aloqa uchun ishlatilishi mumkin, bu sizga markaziy serverga tayanmasdan ko'p ekranli ilovalarni yaratish imkonini beradi. Biroq, WebRTC ni sozlash va boshqarish murakkabroq.
- Uchinchi tomon kutubxonalari: Ko'p ekranli aloqa va taqdimotni boshqarish uchun abstraksiyalarni taqdim etadigan JavaScript kutubxonalari yoki freymvorklarini o'rganing.
Ko'p ekranli veb-dasturlash kelajagi
Frontend Presentation API yanada boy va qiziqarli ko'p ekranli veb-tajribalarini yaratish yo'lida muhim qadamdir. Brauzerlarni qo'llab-quvvatlash o'sishda davom etar ekan va dasturchilar uning to'liq imkoniyatlarini o'rganar ekan, biz bir nechta displeylarning kuchidan foydalanadigan yanada innovatsion ilovalarni ko'rishimiz mumkin.
Xulosa
Presentation API veb-dasturchilarga uzluksiz va qiziqarli ko'p ekranli tajribalarni yaratish imkonini berib, taqdimotlar, hamkorlik, raqamli tabelalar va boshqalar uchun yangi imkoniyatlar ochadi. Ushbu qo'llanmada bayon etilgan asosiy tushunchalar, amalga oshirish tafsilotlari va eng yaxshi amaliyotlarni tushunib, siz Presentation API dan bitta ekran chegarasidan tashqariga chiqadigan innovatsion veb-ilovalarni yaratish uchun foydalanishingiz mumkin. Ushbu texnologiyani qabul qiling va ko'p ekranli veb-dasturlash imkoniyatlarini kashf eting!
Presentation API ni chuqurroq tushunish uchun taqdim etilgan kod namunalarini sinab ko'rishni va turli xil foydalanish holatlarini o'rganishni o'ylab ko'ring. Ilovalaringiz mos kelishini va ko'p ekranli veb-dasturlashdagi so'nggi yutuqlardan foydalanishini ta'minlash uchun brauzer yangilanishlari va yangi xususiyatlar haqida xabardor bo'lib turing.